Many software products provide a relatively large number of internal functions for use while utilizing the software products to perform various tasks. For example, spell check functions within word processors, algorithm functions within spreadsheet applications, and graphical functionality for altering text in publishing applications are relatively commonplace. However, a large number of users are not familiar with many other features, functions, and tools offered in some software products.
In order to address the problem described above, some software products provide for a “help” or “query” tool that allows for users to enter an expression related to a desired task, and receive results according to the particular algorithm employed by the help or query tool. For example, a user may be permitted to enter a phrase or group of terms using natural language that describe functionality the user desires to use in the underlying software product.
In order for relevant functionality to be inferred from the phrase and subsequently returned to the user, the help or query tool must determine what matches (if any) exist between the phrase supplied by the user and pre-defined descriptions of available functionality. Furthermore, natural expressions created by any number of users must be accounted for as compared to a small group of terms used by software programmers who generate the underlying software product and descriptions of associated functionality. Accordingly, there may exist a large gap between natural language expressions used to describe desired software functions as compared to actual internal naming conventions of the desired software functions.
It is with respect to these and other considerations that the disclosure made herein is presented.